/**
	License:		Artistic license 2.0 (see license.txt, also available online at http://www.perlfoundation.org/artistic_license_2_0)
	Authors:		OrbitalLab (http://www.orbitallab.ru/moonglide/), 2007-2009

	File:			MoonGlide.d
	Description:	package import module - import only it to use all the engine
	Date:			28.03.2008 by Digited
**/
module MoonGlide;

pragma( msg, "The MoonGlide engine :: 2007-2009 by OrbitalLab (http://www.orbitallab.ru/moonglide)" );

public import
	moonglide.util.MoonUtil,
	moonglide.core.EngineCore,
	moonglide.io.Config,

	moonglide.scenes.IScene,
	moonglide.scenes.SceneManager,

	moonglide.scenes.animators.FreeMoveAnimator,
	moonglide.scenes.animators.ParticleAnimator;


/* latest improvements:
- 3.05.09: adding of implemented scenes to scene manager's list, defining start scene in engine.cfg.

- scene resource names in its config ONLY, named with "res_" at the beginning of each res name.
	Parsing scene's .cfg before its launch to check if all the resource file present.

- simplified resource getting, loading and releasing:
	ResManager functions (new, load, save and release) are now protected. CResBasic is moved to
		CResManager module to access those protected funcs from its static funcs.
	Each resource class has static opCall with 3 string parameters: id, path (default empty) and
		name of error resource that is generated if loading fails (default empty).
		opCall calls CResManager singleton for new (if path is empty) or load. In its OpCall, the
		resource class creates an instance of itself and gives it as a parameter when calling ResManager
		funcs.
	Each resource class has no public contructors, contructor is called from res manager.
	CResBasic now has static uint refCount, static and non-static getters and non-static protected setter,
		available only to constructor and ResManager funcs.
	Each resource class has Release(uint count) func that decreases ref counter.
	User still shoud not "delete" resources, just retain and release.

- engine object management:
	The first idea to manage engine objects in Resource Manager is rejected, the simple and logical way implemented:
		CEngObject now has static array of CEngObject's, static methods _FixID, Get, _Register and _Unregister, so it
		manages engine objects without any additions to Resource Manager. Keep It Simple
*/
